// 时间复杂度有多个维度
// 最好情况，最坏情况，平均情况

// 好的情况不需要那么多次冒泡
    // 第n躺后，可能不再冒泡了，已经排好序了
    // 如果在某趟没有交换，则已经有序
let bubbleSortFlag=function(arr){
    let len=arr.length-1
    for(let i=0;i<arr.length;i++){
        let flag=true
        let firstSwrapIndex=0 // 设置最后交换元素位置
        for(let j=0;j<len;j++){
            if(arr[j]>arr[j+1]){
                let temp=arr[j]
                arr[j]=arr[j+1]
                arr[j+1]=temp
                flag=false
                firstSwrapIndex=j
            }
        }
        len=firstSwrapIndex
        if(flag){
            break;
        }
    }
    return arr
}

console.log(bubbleSortFlag([2,9,3,4,8,3]))